package com.kool.kreport.dao;

import com.kool.kreport.bean.ReportGlobalSessionCountDo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author luyu
 */
public interface ReportGlobalSessionCountDao {
    /**
     * 插入
     * （代码生成）
     *
     * @param reportGlobalSessionCountDo
     * @return
     */
    Integer insert(ReportGlobalSessionCountDo reportGlobalSessionCountDo);

    /**
     * 根据id查询
     * （代码生成）
     *
     * @param id
     * @return
     */
    ReportGlobalSessionCountDo getById(@Param("id") Long id);

    /**
     * 批量插入
     * （代码生成）
     *
     * @param list
     * @return
     */
    Integer batchInsert(List<ReportGlobalSessionCountDo> list);

    /**
     * 更新
     * （代码生成）
     *
     * @param reportGlobalSessionCountDo
     * @return
     */
    Integer updateById(ReportGlobalSessionCountDo reportGlobalSessionCountDo);

    /**
     * 删除
     * （代码生成）
     *
     * @param id
     * @return
     */
    Integer deleteById(@Param("id") Long id);

    /**
     * 符合条件总条数
     * （代码生成）
     *
     * @param reportGlobalSessionCountDo
     * @return
     */
    Integer countTotal(ReportGlobalSessionCountDo reportGlobalSessionCountDo);

    /**
     * 分页查询
     * （代码生成）
     *
     * @param condition
     * @param offset
     * @param rows
     * @return
     */
    List<ReportGlobalSessionCountDo> getPage(@Param("condition") ReportGlobalSessionCountDo condition, @Param("offset") int offset, @Param("rows") int rows);

    /**
     * 根据日期或月份删除
     *
     * @param reportDate
     * @return
     */
    int deleteByDate(@Param("reportDate") int reportDate);

    /**
     * 查询日期或月份范围内的数据
     *
     * @param dateDim
     * @param from
     * @param to
     * @return
     */
    List<ReportGlobalSessionCountDo> getByDateRange(@Param("dateDim") int dateDim,
                                                    @Param("from") int from,
                                                    @Param("to") int to);
}
